package com.ht.web360.PojServer.dao;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ht.web360.base.dto.PojInfo.dto.PojInfoDto;
import com.ht.web360.base.enums.PojType;
import com.ht.web360.base.enums.dto.PojTypeDto;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 项目信息
 */
@Data
@TableName("poj_info")
public class PojInfo {
    @TableId
    Long id;

    String name;        // 项目名称

    String coverLink;   // 封面链接

    PojType pojType;    // 项目类型

    @TableField(fill = FieldFill.INSERT)
    Long creatorId;     // 创建对象的用户

    @TableField(fill = FieldFill.INSERT)
    LocalDateTime createTime;   // 创建时间

    @TableField(fill = FieldFill.INSERT_UPDATE)
    LocalDateTime updateTime;   // 更新时间

    public PojInfoDto toDto() {
        PojInfoDto dto = new PojInfoDto();
        dto.setId(id.toString());
        dto.setName(name);
        dto.setCoverLink(coverLink);
        dto.setPojTypeDto(PojTypeDto.getInstance(pojType));
        dto.setCreatorId(creatorId.toString());
        dto.setCreateTime(createTime);
        dto.setUpdateTime(updateTime);
        return dto;
    }

    public static PojInfo getInstance(PojInfoDto dto) {
        PojInfo pojInfo = new PojInfo();
        pojInfo.setId(Long.parseLong(dto.getId()));
        pojInfo.setName(dto.getName());
        pojInfo.setCoverLink(dto.getCoverLink());
        pojInfo.setPojType(dto.getPojTypeDto().toPojType());
        pojInfo.setCreatorId(Long.parseLong(dto.getCreatorId()));
        pojInfo.setCreateTime(dto.getCreateTime());
        pojInfo.setUpdateTime(dto.getUpdateTime());
        return pojInfo;
    }
}
